package com.wallet.dao;

import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface BaseDao<T,TExample> {
    int countByExample(TExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(T t);
    
    int insertBatch(List<T> list);

    int insertSelective(T t);

    List<T> selectByExample(TExample example);

    T selectByPrimaryKey(Integer id);

    int updateByExample(@Param("T") T t, @Param("example") TExample tExample);

    int updateByPrimaryKeySelective(T t);

    int updateByPrimaryKeyWithBLOBs(T t);

    int updateByPrimaryKey(T t);
    
    List<T> selectAll();
    
    int selectCount();

}
